
import tpl from './index.html'

export default {
    // 组件字模板
    template: tpl,
    // 外部传入数据
    propTypes: {
        // 组件唯一默认对外双向绑定的数据
        value: {
            type: 'string',
            value: ''
        },
        // 组件包裹层自定义行内样式
        style: {
            type: 'string',
            value: ''
        },
        // 2、更多
        // 无限翻页模式
        infinite: {
            type: function (value, props){
                return true;
            },
            value: false
        },
        // 当前页码
        page: {
            type: 'number',
            value: 1
        },
        // 总页数
        pageTotal: {
            type: 'numeric',
            value: 0
        },
        // 每页条数
        pageSize: {
            type: 'number',
            value: 10
        },
        //数据总数
        count:{
            type: 'number',
            value: 0
        },
        //简单模式
        simple:{
            type: function (value, props){

                return true;
            },
            value: false   
        },
        //每页条数改变名称
        onPageSizeChange:{
            type: 'string',
            value: ''
        },
        //当前页改变名称
        onPageGo:{
            type: 'string',
            value: ''
        }
    },
    // 内部数据
    data: function(){
        return {
            name: "组件名称",
            // 状态
            states: {
            
            },
            // 配置 
            opts: {
                
            },
            // 其他
            other: {

            },
            //
            tail: 0
            //
        }
    },
    // 方法
    methods: {
        previous :function(){
            var self = this;
            if(self.get('page')<='1'){
                // alert('当前页已是最前一页');
            }else{
                var currentPage = self.get('page')-1;
                var onPageGo = self.get('onPageGo');
                this.fire(onPageGo, {value: currentPage});
            }

        },
        next  :function () {
            var self = this;
            var pageTotal = self.get('pageTotal');
            var currentPage = self.get('page');
            if(currentPage >=pageTotal){
                // alert('当前页已是最后一页');
            }else{
                var currentPage = self.get('page')+1;
                var onPageGo = self.get('onPageGo');
                this.fire(onPageGo, {value: currentPage});
            }
        },
        firstpage : function(){
            var self = this;
            var currentPage = self.get('page');
            if(currentPage == 1){
                // alert('当前页已是最后一页');
            }else{
                var onPageGo = self.get('onPageGo');
                this.fire(onPageGo, {value: 1});
            }
        },
        lastpage :function(){
            var self = this;
            var pageTotal = self.get('pageTotal');
            var currentPage = self.get('page');
            if(currentPage ==pageTotal){
                // alert('当前页已是最后一页');
            }else{
                var onPageGo = self.get('onPageGo');
                this.fire(onPageGo, {value: pageTotal});
            }
        },
        selectPage :function(data){
            var self = this;
            var onPageGo = self.get('onPageGo');
            this.fire(onPageGo, {value: data});
        }

        
    },
    // 监听
    watchers: { 
        // "pageTotal": {
        //     watcher: function(newValue){
        //         var self = this;
        //         var data = self.get(name);
        //         var pagesize = self.get('pageSize');
        //         var value=parseInt(newValue);
        //         var maxPage = (value + (pagesize -1)) / pagesize;
        //         // var max = Math.ceil(value / pagesize);
        //         for(var i=1;i<=maxPage;i++){
        //             self.set('tail',i)
        //         }
        //         var data = self.get(name);
        //     },
        //     sync: true
        // },
        "pageSize":{
            watcher: function(newValue){
                var self = this;
                var onPageSizeChange = self.get('onPageSizeChange');
                this.fire(onPageSizeChange, {value: newValue});
            },
        },
        "page": {
            watcher: function(newValue){
                var self = this;
                var data = newValue;
                console.log(data)
            },
            sync: true
        }
    },
    afterMount: function(){
        
    }
};